package com.itheima.test;


import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.junit.Test;

import java.io.*;

public class POItest {

    //加载文件,下载文件
    @Test
    public void test() throws IOException {
        //加载指定文件，创建一个Excel对象（工作簿）
        XSSFWorkbook excel = new XSSFWorkbook(new FileInputStream(new File("E:\\123.xlsx")));
        //读取excel中第一个sheet标签页
        XSSFSheet sheet = excel.getSheetAt(0);
        //遍历sheet标签页，获取每一行数据
        for (Row row : sheet) {
            //遍历每一个单元格对象
            for (Cell cell : row) {
                System.out.println(cell.getStringCellValue());
            }
        }
        excel.close();

    }//POI操作表格XSSFWorkbook工作簿   XSSFSheet工作表   Row行   Cell单元格



    //加载文件
    @Test
    public void test2() throws IOException {
        //加载指定文件，创建一个Excel对象（工作簿）
        XSSFWorkbook excel = new XSSFWorkbook("E:\\123.xlsx");
        //读取excel中第一个sheet标签页
        XSSFSheet sheet = excel.getSheetAt(0);
        //通过getLastRowNum   getLastCellNum  获得最后行数和及每一行的最后列数
        int rowNum = sheet.getLastRowNum();
        for (int i = 0; i <= rowNum; i++) {//从0开始
            XSSFRow row = sheet.getRow(i);
            short cellNum = row.getLastCellNum();
            for(int j = 0; j < cellNum; j++){//cellNum 为最后列数+1故为  <
                XSSFCell cell = row.getCell(j);
                System.out.println(cell.getStringCellValue());
            }
        }
        //关闭资源
        excel.close();

    }



    //写入文件，通过输出流下载文件并存入磁盘
    @Test
    public void test3() throws IOException {
        //内存中创建一个Excel文件
        XSSFWorkbook excel = new XSSFWorkbook();
        //创建工作表指定工作表名称
        XSSFSheet sheet = excel.createSheet("abc");
        //创建行  0=>第一行

        XSSFRow title = sheet.createRow(0);
        //创建单元格 0=> 第一个单元格
        title.createCell(0).setCellValue("name");
        title.createCell(1).setCellValue("age");
        title.createCell(2).setCellValue("gender");

        XSSFRow row1 = sheet.createRow(1);
        //创建单元格 0=> 第一个单元格
        row1.createCell(0).setCellValue("Tom");
        row1.createCell(1).setCellValue("16");
        row1.createCell(2).setCellValue("male");

        //创建行  0=>第一行
        XSSFRow row2 = sheet.createRow(2);
        //创建单元格 0=> 第一个单元格
        row2.createCell(0).setCellValue("Jane");
        row2.createCell(1).setCellValue("23");
        row2.createCell(2).setCellValue("female");

        //创建行  0=>第一行
        XSSFRow row3 = sheet.createRow(3);
        //创建单元格 0=> 第一个单元格
        row3.createCell(0).setCellValue("Susan");
        row3.createCell(1).setCellValue("25");
        row3.createCell(2).setCellValue("female");

        FileOutputStream out = new FileOutputStream(new File("E:\\abc.xlsx"));
        excel.write(out);
        out.flush();

        excel.close();

    }







}
